﻿
#include "MenuWnd.h"
#include "Node.h"
#include "resource.h"

CMenuWnd::CMenuWnd(HWND hParent, LPCTSTR strXMLPath):m_hParent(hParent),m_strXMLPath(strXMLPath)
{
	InitBtnMsgArray();
}

CMenuWnd::~CMenuWnd()
{
	//for (std::vector<BtnMsgInfo>::iterator it = m_vecBtnMsg.begin(); it != m_vecBtnMsg.end(); it++) {
	//	delete it->strBtnName;
	//}
	m_vecBtnMsg.clear();
}

void CMenuWnd::Init(HWND hWndParent, POINT point)
{
	Create(m_hParent, _T("MenuWnd"), WS_POPUP, WS_EX_TOOLWINDOW | WS_EX_TOPMOST, CDuiRect());
	::SetWindowPos(m_hWnd, NULL, point.x, point.y, 0, 0, SWP_NOZORDER | SWP_NOSIZE | SWP_NOACTIVATE);
	::ShowWindow(m_hWnd, SW_SHOW);
}

LPCTSTR CMenuWnd::GetWindowClassName() const
{
	return _T("MenuWnd");
}

UINT CMenuWnd::GetClassStyle() const
{
	return UI_CLASSSTYLE_DIALOG | CS_DBLCLKS;
}

CDuiString CMenuWnd::GetSkinFile()
{
	return m_strXMLPath;
}

CDuiString CMenuWnd::GetSkinFolder()
{
	return _T("");
}

void CMenuWnd::Notify(TNotifyUI& msg)
{
	if (msg.sType == _T("click") && msg.pSender->GetName() != _T("closebtn")) {
		if (_tcsstr(m_strXMLPath, _T("MenuColor.xml"))) {
			::SendMessage(m_hParent, WM_FORMULA_CHANGECOLOR, WPARAM(msg.pSender->GetBkColor()), 0);
		}
		else {
			for (std::vector<BtnMsgInfo>::iterator it = m_vecBtnMsg.begin(); it != m_vecBtnMsg.end(); it++) {
				if (!_tcscmp(it->strBtnName, msg.pSender->GetName().GetData())) {
					::SendMessage(m_hParent, it->iCommand, it->wParam, it->lParam);
					break;
				}
			}
		}
		Close();
	}
	return __super::Notify(msg);
}

void CMenuWnd::OnFinalMessage(HWND hWnd)
{
	__super::OnFinalMessage(hWnd);
	delete this;
}

LRESULT CMenuWnd::OnKillFocus(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
{
	Close();
	bHandled = FALSE;
	return 0;
}

LRESULT CMenuWnd::HandleMessage(UINT uMsg, WPARAM wParam, LPARAM lParam)
{
	LRESULT lRes = 0;
	BOOL    bHandled = TRUE;

	switch (uMsg)
	{
	case WM_KILLFOCUS:
		lRes = OnKillFocus(uMsg, wParam, lParam, bHandled);
		break;
	default:
		bHandled = FALSE;
	}

	return __super::HandleMessage(uMsg, wParam, lParam);
}

void CMenuWnd::InitBtnMsgArray()
{
	//数字菜单
	if (_tcsstr(m_strXMLPath, _T("MenuNum.xml"))) {
		m_vecBtnMsg.push_back({ _T("btnNum0"), WM_FORMULA_INSERTCHAR, '0', 0 });
		m_vecBtnMsg.push_back({ _T("btnNum1"), WM_FORMULA_INSERTCHAR, '1', 0 });
		m_vecBtnMsg.push_back({ _T("btnNum2"), WM_FORMULA_INSERTCHAR, '2', 0 });
		m_vecBtnMsg.push_back({ _T("btnNum3"), WM_FORMULA_INSERTCHAR, '3', 0 });
		m_vecBtnMsg.push_back({ _T("btnNum4"), WM_FORMULA_INSERTCHAR, '4', 0 });
		m_vecBtnMsg.push_back({ _T("btnNum5"), WM_FORMULA_INSERTCHAR, '5', 0 });
		m_vecBtnMsg.push_back({ _T("btnNum6"), WM_FORMULA_INSERTCHAR, '6', 0 });
		m_vecBtnMsg.push_back({ _T("btnNum7"), WM_FORMULA_INSERTCHAR, '7', 0 });
		m_vecBtnMsg.push_back({ _T("btnNum8"), WM_FORMULA_INSERTCHAR, '8', 0 });
		m_vecBtnMsg.push_back({ _T("btnNum9"), WM_FORMULA_INSERTCHAR, '9', 0 });
		m_vecBtnMsg.push_back({ _T("btnPoint"), WM_FORMULA_INSERTCHAR, '.', 0 });
		m_vecBtnMsg.push_back({ _T("btnPlus"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_PLUS, 0 });
		m_vecBtnMsg.push_back({ _T("btnMinus"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_MINUS, 0 });
		m_vecBtnMsg.push_back({ _T("btnMultiply"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_MULTIPLY, 0 });
		m_vecBtnMsg.push_back({ _T("btnDivide"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_DIVIDE, 0 });
		m_vecBtnMsg.push_back({ _T("btnEquation"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_EQUATION, 0 });
	}
	//符号菜单
	else if (_tcsstr(m_strXMLPath, _T("MenuSign.xml"))) {
		m_vecBtnMsg.push_back({ _T("btnHyphen"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_HYPHEN, 0 });
		m_vecBtnMsg.push_back({ _T("btnDot"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_DOT, 0 });
		m_vecBtnMsg.push_back({ _T("btnLessThanOrEqual"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_LESSTHANOREQUAL, 0 });
		m_vecBtnMsg.push_back({ _T("btnGreaterThanOrEqual"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_GREATERTHANOREQUAL, 0 });
		m_vecBtnMsg.push_back({ _T("btnEqual"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_EQUAL, 0 });
		m_vecBtnMsg.push_back({ _T("btnLessThan"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_LESSTHAN, 0 });
		m_vecBtnMsg.push_back({ _T("btnGreaterThan"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_GREATERTHAN, 0 });
		m_vecBtnMsg.push_back({ _T("btnNotEqual"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_NOTEQUAL, 0 });
		m_vecBtnMsg.push_back({ _T("btnPercent"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_PERCENT, 0 });
		m_vecBtnMsg.push_back({ _T("btnSlash"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_SLASH, 0 });
		m_vecBtnMsg.push_back({ _T("btnBackSlash"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_BACKSLASH, 0 });
		m_vecBtnMsg.push_back({ _T("btnSingleQuote"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_SINGLEQUOTE, 0 });
		m_vecBtnMsg.push_back({ _T("btnColon"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_COLON, 0 });
		m_vecBtnMsg.push_back({ _T("btnDoubleQuote"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_DOUBLEQUOTE, 0 });
		m_vecBtnMsg.push_back({ _T("btnAnd"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_AND, 0 });
		m_vecBtnMsg.push_back({ _T("btnStar"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_STAR, 0 });
		m_vecBtnMsg.push_back({ _T("btnHashKey"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_HASHKEY, 0 });
		m_vecBtnMsg.push_back({ _T("btnQuestionMark"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_QUESTIONMARK, 0 });
		m_vecBtnMsg.push_back({ _T("btnSemicolon"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_SEMICOLON, 0 });
		m_vecBtnMsg.push_back({ _T("btnVerticalBar"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_VERTICALBAR, 0 });
		m_vecBtnMsg.push_back({ _T("btnExclamationMark"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_EXCLAMATIONMARK, 0 });
		m_vecBtnMsg.push_back({ _T("btnLeftParenthesis"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_LEFTPARENTHESIS, 0 });
		m_vecBtnMsg.push_back({ _T("btnRightParenthesis"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_RIGHTPARENTHESIS, 0 });
		m_vecBtnMsg.push_back({ _T("btnLeftBracket"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_LEFTBRACKET, 0 });
		m_vecBtnMsg.push_back({ _T("btnRightBracket"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_RIGHTBRACKET, 0 });
		m_vecBtnMsg.push_back({ _T("btnLeftBrace"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_LEFTBRACE, 0 });
		m_vecBtnMsg.push_back({ _T("btnRightBrace"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_RIGHTBRACE, 0 });
		m_vecBtnMsg.push_back({ _T("btnTilde"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_TILDE, 0 });
		m_vecBtnMsg.push_back({ _T("btnPeriod"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_PERIOD, 0 });
		m_vecBtnMsg.push_back({ _T("btnIsEquivalentTo"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_ISEQUIVALENTTO, 0 });
		m_vecBtnMsg.push_back({ _T("btnPlusOrMinus"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_PLUSORMINUS, 0 });
		m_vecBtnMsg.push_back({ _T("btnComma"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_COMMA, 0 });
		m_vecBtnMsg.push_back({ _T("btnIsApproximatelyEqualTo"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_ISAPPROXIMATELYEQUALTO, 0 });
		m_vecBtnMsg.push_back({ _T("btnInfinity"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_INFINITY, 0 });
		m_vecBtnMsg.push_back({ _T("btnRightSingleArrow"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_SINGLERIGHTARROW, 0 });
		m_vecBtnMsg.push_back({ _T("btnSince"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_SINCE, 0 });
		m_vecBtnMsg.push_back({ _T("btnHence"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_HENCE, 0 });
		m_vecBtnMsg.push_back({ _T("btnBelongTo"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_BELONGTO, 0 });
		m_vecBtnMsg.push_back({ _T("btnContain"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_CONTAIN, 0 });
		m_vecBtnMsg.push_back({ _T("btnInclusion"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_INCLUSION, 0 });
		m_vecBtnMsg.push_back({ _T("btnUnionOf"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_UNIONOF, 0 });
		m_vecBtnMsg.push_back({ _T("btnIntersectionOf"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_INTERSECTIONOF, 0 });
		m_vecBtnMsg.push_back({ _T("btnDelta"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_DELTA, 0 });
		m_vecBtnMsg.push_back({ _T("btnNabla"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_NABLA, 0 });
		m_vecBtnMsg.push_back({ _T("btnVariesAs"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_VARIESAS, 0 });
		m_vecBtnMsg.push_back({ _T("btnPropositionalNegation"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_PROPOSITIONALNEGATION, 0 });
		m_vecBtnMsg.push_back({ _T("btnUniversalQuantifier"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_UNIVERSALQUANTIFIER, 0 });
		m_vecBtnMsg.push_back({ _T("btnRightDoubleArrow"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_DOUBLERIGHTARROW, 0 });
		m_vecBtnMsg.push_back({ _T("btnExistentialQuantifier"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_EXISTENTIALQUANTIFIER, 0 });
		m_vecBtnMsg.push_back({ _T("btnPlanckConstant"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_PLANCKCONSTANT, 0 });
	}
	//特殊符号-希腊字母
	else if (_tcsstr(m_strXMLPath, _T("MenuGreekAlphabet.xml"))) {
		m_vecBtnMsg.push_back({ _T("btnalpha"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_GREEKALPHABET, (LPARAM)(LPVOID)_T("a") });
		m_vecBtnMsg.push_back({ _T("btnbeta"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_GREEKALPHABET, (LPARAM)(LPVOID)_T("b") });
		m_vecBtnMsg.push_back({ _T("btngamma"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_GREEKALPHABET, (LPARAM)(LPVOID)_T("g") });
		m_vecBtnMsg.push_back({ _T("btndelta"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_GREEKALPHABET, (LPARAM)(LPVOID)_T("d") });
		m_vecBtnMsg.push_back({ _T("btnepsilon"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_GREEKALPHABET, (LPARAM)(LPVOID)_T("e") });
		m_vecBtnMsg.push_back({ _T("btnzeta"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_GREEKALPHABET, (LPARAM)(LPVOID)_T("z") });
		m_vecBtnMsg.push_back({ _T("btneta"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_GREEKALPHABET, (LPARAM)(LPVOID)_T("h") });
		m_vecBtnMsg.push_back({ _T("btntheta"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_GREEKALPHABET, (LPARAM)(LPVOID)_T("q") });
		m_vecBtnMsg.push_back({ _T("btniota"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_GREEKALPHABET, (LPARAM)(LPVOID)_T("i") });
		m_vecBtnMsg.push_back({ _T("btnkappa"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_GREEKALPHABET, (LPARAM)(LPVOID)_T("k") });
		m_vecBtnMsg.push_back({ _T("btnlambda"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_GREEKALPHABET, (LPARAM)(LPVOID)_T("l") });
		m_vecBtnMsg.push_back({ _T("btnmy"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_GREEKALPHABET, (LPARAM)(LPVOID)_T("m") });
		m_vecBtnMsg.push_back({ _T("btnny"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_GREEKALPHABET, (LPARAM)(LPVOID)_T("n") });
		m_vecBtnMsg.push_back({ _T("btnxi"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_GREEKALPHABET, (LPARAM)(LPVOID)_T("x") });
		m_vecBtnMsg.push_back({ _T("btnomicron"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_GREEKALPHABET, (LPARAM)(LPVOID)_T("o") });
		m_vecBtnMsg.push_back({ _T("btnpi"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_GREEKALPHABET, (LPARAM)(LPVOID)_T("p") });
		m_vecBtnMsg.push_back({ _T("btnrho"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_GREEKALPHABET, (LPARAM)(LPVOID)_T("r") });
		m_vecBtnMsg.push_back({ _T("btnsigma"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_GREEKALPHABET, (LPARAM)(LPVOID)_T("s") });
		m_vecBtnMsg.push_back({ _T("btntau"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_GREEKALPHABET, (LPARAM)(LPVOID)_T("t") });
		m_vecBtnMsg.push_back({ _T("btnypsilon"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_GREEKALPHABET, (LPARAM)(LPVOID)_T("u") });
		m_vecBtnMsg.push_back({ _T("btnphi"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_GREEKALPHABET, (LPARAM)(LPVOID)_T("j") });
		m_vecBtnMsg.push_back({ _T("btnchi"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_GREEKALPHABET, (LPARAM)(LPVOID)_T("c") });
		m_vecBtnMsg.push_back({ _T("btnpsi"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_GREEKALPHABET, (LPARAM)(LPVOID)_T("y") });
		m_vecBtnMsg.push_back({ _T("btnomega"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_GREEKALPHABET, (LPARAM)(LPVOID)_T("w") });
		m_vecBtnMsg.push_back({ _T("btnALPHA"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_GREEKALPHABET, (LPARAM)(LPVOID)_T("A") });
		m_vecBtnMsg.push_back({ _T("btnBETA"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_GREEKALPHABET, (LPARAM)(LPVOID)_T("B") });
		m_vecBtnMsg.push_back({ _T("btnGAMMA"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_GREEKALPHABET, (LPARAM)(LPVOID)_T("G") });
		m_vecBtnMsg.push_back({ _T("btnDELTA"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_GREEKALPHABET, (LPARAM)(LPVOID)_T("D") });
		m_vecBtnMsg.push_back({ _T("btnEPSILON"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_GREEKALPHABET, (LPARAM)(LPVOID)_T("E") });
		m_vecBtnMsg.push_back({ _T("btnZETA"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_GREEKALPHABET, (LPARAM)(LPVOID)_T("Z") });
		m_vecBtnMsg.push_back({ _T("btnETA"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_GREEKALPHABET, (LPARAM)(LPVOID)_T("H") });
		m_vecBtnMsg.push_back({ _T("btnTHETA"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_GREEKALPHABET, (LPARAM)(LPVOID)_T("Q") });
		m_vecBtnMsg.push_back({ _T("btnIOTA"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_GREEKALPHABET, (LPARAM)(LPVOID)_T("I") });
		m_vecBtnMsg.push_back({ _T("btnKAPPA"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_GREEKALPHABET, (LPARAM)(LPVOID)_T("K") });
		m_vecBtnMsg.push_back({ _T("btnLAMBDA"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_GREEKALPHABET, (LPARAM)(LPVOID)_T("L") });
		m_vecBtnMsg.push_back({ _T("btnMY"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_GREEKALPHABET, (LPARAM)(LPVOID)_T("M") });
		m_vecBtnMsg.push_back({ _T("btnNY"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_GREEKALPHABET, (LPARAM)(LPVOID)_T("N") });
		m_vecBtnMsg.push_back({ _T("btnXI"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_GREEKALPHABET, (LPARAM)(LPVOID)_T("X") });
		m_vecBtnMsg.push_back({ _T("btnOMICRON"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_GREEKALPHABET, (LPARAM)(LPVOID)_T("O") });
		m_vecBtnMsg.push_back({ _T("btnPI"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_GREEKALPHABET, (LPARAM)(LPVOID)_T("P") });
		m_vecBtnMsg.push_back({ _T("btnRHO"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_GREEKALPHABET, (LPARAM)(LPVOID)_T("R") });
		m_vecBtnMsg.push_back({ _T("btnSIGMA"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_GREEKALPHABET, (LPARAM)(LPVOID)_T("S") });
		m_vecBtnMsg.push_back({ _T("btnTAU"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_GREEKALPHABET, (LPARAM)(LPVOID)_T("T") });
		m_vecBtnMsg.push_back({ _T("btnYPSILON"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_GREEKALPHABET, (LPARAM)(LPVOID)_T("U") });
		m_vecBtnMsg.push_back({ _T("btnPHI"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_GREEKALPHABET, (LPARAM)(LPVOID)_T("F") });
		m_vecBtnMsg.push_back({ _T("btnCHI"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_GREEKALPHABET, (LPARAM)(LPVOID)_T("C") });
		m_vecBtnMsg.push_back({ _T("btnPSI"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_GREEKALPHABET, (LPARAM)(LPVOID)_T("Y") });
		m_vecBtnMsg.push_back({ _T("btnOMEGA"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_GREEKALPHABET, (LPARAM)(LPVOID)_T("W") });
	}
	//字母菜单
	else if (_tcsstr(m_strXMLPath, _T("MenuAlphabet.xml"))) {
		m_vecBtnMsg.push_back({ _T("btnChara"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_ALPHABET, (LPARAM)(LPVOID)_T("a") });
		m_vecBtnMsg.push_back({ _T("btnCharb"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_ALPHABET, (LPARAM)(LPVOID)_T("b") });
		m_vecBtnMsg.push_back({ _T("btnCharc"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_ALPHABET, (LPARAM)(LPVOID)_T("c") });
		m_vecBtnMsg.push_back({ _T("btnChard"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_ALPHABET, (LPARAM)(LPVOID)_T("d") });
		m_vecBtnMsg.push_back({ _T("btnChare"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_ALPHABET, (LPARAM)(LPVOID)_T("e") });
		m_vecBtnMsg.push_back({ _T("btnCharf"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_ALPHABET, (LPARAM)(LPVOID)_T("f") });
		m_vecBtnMsg.push_back({ _T("btnCharg"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_ALPHABET, (LPARAM)(LPVOID)_T("g") });
		m_vecBtnMsg.push_back({ _T("btnCharh"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_ALPHABET, (LPARAM)(LPVOID)_T("h") });
		m_vecBtnMsg.push_back({ _T("btnChari"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_ALPHABET, (LPARAM)(LPVOID)_T("i") });
		m_vecBtnMsg.push_back({ _T("btnCharj"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_ALPHABET, (LPARAM)(LPVOID)_T("j") });
		m_vecBtnMsg.push_back({ _T("btnChark"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_ALPHABET, (LPARAM)(LPVOID)_T("k") });
		m_vecBtnMsg.push_back({ _T("btnCharl"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_ALPHABET, (LPARAM)(LPVOID)_T("l") });
		m_vecBtnMsg.push_back({ _T("btnCharm"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_ALPHABET, (LPARAM)(LPVOID)_T("m") });
		m_vecBtnMsg.push_back({ _T("btnCharn"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_ALPHABET, (LPARAM)(LPVOID)_T("n") });
		m_vecBtnMsg.push_back({ _T("btnCharo"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_ALPHABET, (LPARAM)(LPVOID)_T("o") });
		m_vecBtnMsg.push_back({ _T("btnCharp"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_ALPHABET, (LPARAM)(LPVOID)_T("p") });
		m_vecBtnMsg.push_back({ _T("btnCharq"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_ALPHABET, (LPARAM)(LPVOID)_T("q") });
		m_vecBtnMsg.push_back({ _T("btnCharr"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_ALPHABET, (LPARAM)(LPVOID)_T("r") });
		m_vecBtnMsg.push_back({ _T("btnChars"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_ALPHABET, (LPARAM)(LPVOID)_T("s") });
		m_vecBtnMsg.push_back({ _T("btnChart"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_ALPHABET, (LPARAM)(LPVOID)_T("t") });
		m_vecBtnMsg.push_back({ _T("btnCharu"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_ALPHABET, (LPARAM)(LPVOID)_T("u") });
		m_vecBtnMsg.push_back({ _T("btnCharv"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_ALPHABET, (LPARAM)(LPVOID)_T("v") });
		m_vecBtnMsg.push_back({ _T("btnCharw"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_ALPHABET, (LPARAM)(LPVOID)_T("w") });
		m_vecBtnMsg.push_back({ _T("btnCharx"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_ALPHABET, (LPARAM)(LPVOID)_T("x") });
		m_vecBtnMsg.push_back({ _T("btnChary"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_ALPHABET, (LPARAM)(LPVOID)_T("y") });
		m_vecBtnMsg.push_back({ _T("btnCharz"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_ALPHABET, (LPARAM)(LPVOID)_T("z") });
		m_vecBtnMsg.push_back({ _T("btnCharA"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_ALPHABET, (LPARAM)(LPVOID)_T("A") });
		m_vecBtnMsg.push_back({ _T("btnCharB"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_ALPHABET, (LPARAM)(LPVOID)_T("B") });
		m_vecBtnMsg.push_back({ _T("btnCharC"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_ALPHABET, (LPARAM)(LPVOID)_T("C") });
		m_vecBtnMsg.push_back({ _T("btnCharD"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_ALPHABET, (LPARAM)(LPVOID)_T("D") });
		m_vecBtnMsg.push_back({ _T("btnCharE"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_ALPHABET, (LPARAM)(LPVOID)_T("E") });
		m_vecBtnMsg.push_back({ _T("btnCharF"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_ALPHABET, (LPARAM)(LPVOID)_T("F") });
		m_vecBtnMsg.push_back({ _T("btnCharG"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_ALPHABET, (LPARAM)(LPVOID)_T("G") });
		m_vecBtnMsg.push_back({ _T("btnCharH"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_ALPHABET, (LPARAM)(LPVOID)_T("H") });
		m_vecBtnMsg.push_back({ _T("btnCharI"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_ALPHABET, (LPARAM)(LPVOID)_T("I") });
		m_vecBtnMsg.push_back({ _T("btnCharJ"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_ALPHABET, (LPARAM)(LPVOID)_T("J") });
		m_vecBtnMsg.push_back({ _T("btnCharK"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_ALPHABET, (LPARAM)(LPVOID)_T("K") });
		m_vecBtnMsg.push_back({ _T("btnCharL"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_ALPHABET, (LPARAM)(LPVOID)_T("L") });
		m_vecBtnMsg.push_back({ _T("btnCharM"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_ALPHABET, (LPARAM)(LPVOID)_T("M") });
		m_vecBtnMsg.push_back({ _T("btnCharN"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_ALPHABET, (LPARAM)(LPVOID)_T("N") });
		m_vecBtnMsg.push_back({ _T("btnCharO"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_ALPHABET, (LPARAM)(LPVOID)_T("O") });
		m_vecBtnMsg.push_back({ _T("btnCharP"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_ALPHABET, (LPARAM)(LPVOID)_T("P") });
		m_vecBtnMsg.push_back({ _T("btnCharQ"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_ALPHABET, (LPARAM)(LPVOID)_T("Q") });
		m_vecBtnMsg.push_back({ _T("btnCharR"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_ALPHABET, (LPARAM)(LPVOID)_T("R") });
		m_vecBtnMsg.push_back({ _T("btnCharS"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_ALPHABET, (LPARAM)(LPVOID)_T("S") });
		m_vecBtnMsg.push_back({ _T("btnCharT"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_ALPHABET, (LPARAM)(LPVOID)_T("T") });
		m_vecBtnMsg.push_back({ _T("btnCharU"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_ALPHABET, (LPARAM)(LPVOID)_T("U") });
		m_vecBtnMsg.push_back({ _T("btnCharV"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_ALPHABET, (LPARAM)(LPVOID)_T("V") });
		m_vecBtnMsg.push_back({ _T("btnCharW"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_ALPHABET, (LPARAM)(LPVOID)_T("W") });
		m_vecBtnMsg.push_back({ _T("btnCharX"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_ALPHABET, (LPARAM)(LPVOID)_T("X") });
		m_vecBtnMsg.push_back({ _T("btnCharY"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_ALPHABET, (LPARAM)(LPVOID)_T("Y") });
		m_vecBtnMsg.push_back({ _T("btnCharZ"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_ALPHABET, (LPARAM)(LPVOID)_T("Z") });
	}
	//手写体和花体
	else if (_tcsstr(m_strXMLPath, _T("MenuHandwriting.xml"))) {
		m_vecBtnMsg.push_back({ _T("btnHandwritingChara"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_HANDWRITING, (LPARAM)(LPVOID)_T("a") });
		m_vecBtnMsg.push_back({ _T("btnHandwritingCharb"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_HANDWRITING, (LPARAM)(LPVOID)_T("b") });
		m_vecBtnMsg.push_back({ _T("btnHandwritingCharc"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_HANDWRITING, (LPARAM)(LPVOID)_T("c") });
		m_vecBtnMsg.push_back({ _T("btnHandwritingChard"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_HANDWRITING, (LPARAM)(LPVOID)_T("d") });
		m_vecBtnMsg.push_back({ _T("btnHandwritingChare"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_HANDWRITING, (LPARAM)(LPVOID)_T("e") });
		m_vecBtnMsg.push_back({ _T("btnHandwritingCharf"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_HANDWRITING, (LPARAM)(LPVOID)_T("f") });
		m_vecBtnMsg.push_back({ _T("btnHandwritingCharg"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_HANDWRITING, (LPARAM)(LPVOID)_T("g") });
		m_vecBtnMsg.push_back({ _T("btnHandwritingCharh"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_HANDWRITING, (LPARAM)(LPVOID)_T("h") });
		m_vecBtnMsg.push_back({ _T("btnHandwritingChari"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_HANDWRITING, (LPARAM)(LPVOID)_T("i") });
		m_vecBtnMsg.push_back({ _T("btnHandwritingCharj"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_HANDWRITING, (LPARAM)(LPVOID)_T("j") });
		m_vecBtnMsg.push_back({ _T("btnHandwritingChark"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_HANDWRITING, (LPARAM)(LPVOID)_T("k") });
		m_vecBtnMsg.push_back({ _T("btnHandwritingCharl"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_HANDWRITING, (LPARAM)(LPVOID)_T("l") });
		m_vecBtnMsg.push_back({ _T("btnHandwritingCharm"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_HANDWRITING, (LPARAM)(LPVOID)_T("m") });
		m_vecBtnMsg.push_back({ _T("btnHandwritingCharn"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_HANDWRITING, (LPARAM)(LPVOID)_T("n") });
		m_vecBtnMsg.push_back({ _T("btnHandwritingCharo"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_HANDWRITING, (LPARAM)(LPVOID)_T("o") });
		m_vecBtnMsg.push_back({ _T("btnHandwritingCharp"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_HANDWRITING, (LPARAM)(LPVOID)_T("p") });
		m_vecBtnMsg.push_back({ _T("btnHandwritingCharq"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_HANDWRITING, (LPARAM)(LPVOID)_T("q") });
		m_vecBtnMsg.push_back({ _T("btnHandwritingCharr"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_HANDWRITING, (LPARAM)(LPVOID)_T("r") });
		m_vecBtnMsg.push_back({ _T("btnHandwritingChars"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_HANDWRITING, (LPARAM)(LPVOID)_T("s") });
		m_vecBtnMsg.push_back({ _T("btnHandwritingChart"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_HANDWRITING, (LPARAM)(LPVOID)_T("t") });
		m_vecBtnMsg.push_back({ _T("btnHandwritingCharu"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_HANDWRITING, (LPARAM)(LPVOID)_T("u") });
		m_vecBtnMsg.push_back({ _T("btnHandwritingCharv"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_HANDWRITING, (LPARAM)(LPVOID)_T("v") });
		m_vecBtnMsg.push_back({ _T("btnHandwritingCharw"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_HANDWRITING, (LPARAM)(LPVOID)_T("w") });
		m_vecBtnMsg.push_back({ _T("btnHandwritingCharx"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_HANDWRITING, (LPARAM)(LPVOID)_T("x") });
		m_vecBtnMsg.push_back({ _T("btnHandwritingChary"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_HANDWRITING, (LPARAM)(LPVOID)_T("y") });
		m_vecBtnMsg.push_back({ _T("btnHandwritingCharz"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_HANDWRITING, (LPARAM)(LPVOID)_T("z") });
		m_vecBtnMsg.push_back({ _T("btnHandwritingCharA"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_HANDWRITING, (LPARAM)(LPVOID)_T("A") });
		m_vecBtnMsg.push_back({ _T("btnHandwritingCharB"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_HANDWRITING, (LPARAM)(LPVOID)_T("B") });
		m_vecBtnMsg.push_back({ _T("btnHandwritingCharC"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_HANDWRITING, (LPARAM)(LPVOID)_T("C") });
		m_vecBtnMsg.push_back({ _T("btnHandwritingCharD"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_HANDWRITING, (LPARAM)(LPVOID)_T("D") });
		m_vecBtnMsg.push_back({ _T("btnHandwritingCharE"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_HANDWRITING, (LPARAM)(LPVOID)_T("E") });
		m_vecBtnMsg.push_back({ _T("btnHandwritingCharF"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_HANDWRITING, (LPARAM)(LPVOID)_T("F") });
		m_vecBtnMsg.push_back({ _T("btnHandwritingCharG"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_HANDWRITING, (LPARAM)(LPVOID)_T("G") });
		m_vecBtnMsg.push_back({ _T("btnHandwritingCharH"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_HANDWRITING, (LPARAM)(LPVOID)_T("H") });
		m_vecBtnMsg.push_back({ _T("btnHandwritingCharI"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_HANDWRITING, (LPARAM)(LPVOID)_T("I") });
		m_vecBtnMsg.push_back({ _T("btnHandwritingCharJ"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_HANDWRITING, (LPARAM)(LPVOID)_T("J") });
		m_vecBtnMsg.push_back({ _T("btnHandwritingCharK"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_HANDWRITING, (LPARAM)(LPVOID)_T("K") });
		m_vecBtnMsg.push_back({ _T("btnHandwritingCharL"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_HANDWRITING, (LPARAM)(LPVOID)_T("L") });
		m_vecBtnMsg.push_back({ _T("btnHandwritingCharM"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_HANDWRITING, (LPARAM)(LPVOID)_T("M") });
		m_vecBtnMsg.push_back({ _T("btnHandwritingCharN"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_HANDWRITING, (LPARAM)(LPVOID)_T("N") });
		m_vecBtnMsg.push_back({ _T("btnHandwritingCharO"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_HANDWRITING, (LPARAM)(LPVOID)_T("O") });
		m_vecBtnMsg.push_back({ _T("btnHandwritingCharP"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_HANDWRITING, (LPARAM)(LPVOID)_T("P") });
		m_vecBtnMsg.push_back({ _T("btnHandwritingCharQ"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_HANDWRITING, (LPARAM)(LPVOID)_T("Q") });
		m_vecBtnMsg.push_back({ _T("btnHandwritingCharR"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_HANDWRITING, (LPARAM)(LPVOID)_T("R") });
		m_vecBtnMsg.push_back({ _T("btnHandwritingCharS"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_HANDWRITING, (LPARAM)(LPVOID)_T("S") });
		m_vecBtnMsg.push_back({ _T("btnHandwritingCharT"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_HANDWRITING, (LPARAM)(LPVOID)_T("T") });
		m_vecBtnMsg.push_back({ _T("btnHandwritingCharU"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_HANDWRITING, (LPARAM)(LPVOID)_T("U") });
		m_vecBtnMsg.push_back({ _T("btnHandwritingCharV"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_HANDWRITING, (LPARAM)(LPVOID)_T("V") });
		m_vecBtnMsg.push_back({ _T("btnHandwritingCharW"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_HANDWRITING, (LPARAM)(LPVOID)_T("W") });
		m_vecBtnMsg.push_back({ _T("btnHandwritingCharX"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_HANDWRITING, (LPARAM)(LPVOID)_T("X") });
		m_vecBtnMsg.push_back({ _T("btnHandwritingCharY"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_HANDWRITING, (LPARAM)(LPVOID)_T("Y") });
		m_vecBtnMsg.push_back({ _T("btnHandwritingCharZ"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_HANDWRITING, (LPARAM)(LPVOID)_T("Z") });
		m_vecBtnMsg.push_back({ _T("btnCopperplateChara"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_COPPERPLATE, (LPARAM)(LPVOID)_T("a") });
		m_vecBtnMsg.push_back({ _T("btnCopperplateCharb"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_COPPERPLATE, (LPARAM)(LPVOID)_T("b") });
		m_vecBtnMsg.push_back({ _T("btnCopperplateCharc"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_COPPERPLATE, (LPARAM)(LPVOID)_T("c") });
		m_vecBtnMsg.push_back({ _T("btnCopperplateChard"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_COPPERPLATE, (LPARAM)(LPVOID)_T("d") });
		m_vecBtnMsg.push_back({ _T("btnCopperplateChare"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_COPPERPLATE, (LPARAM)(LPVOID)_T("e") });
		m_vecBtnMsg.push_back({ _T("btnCopperplateCharf"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_COPPERPLATE, (LPARAM)(LPVOID)_T("f") });
		m_vecBtnMsg.push_back({ _T("btnCopperplateCharg"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_COPPERPLATE, (LPARAM)(LPVOID)_T("g") });
		m_vecBtnMsg.push_back({ _T("btnCopperplateCharh"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_COPPERPLATE, (LPARAM)(LPVOID)_T("h") });
		m_vecBtnMsg.push_back({ _T("btnCopperplateChari"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_COPPERPLATE, (LPARAM)(LPVOID)_T("i") });
		m_vecBtnMsg.push_back({ _T("btnCopperplateCharj"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_COPPERPLATE, (LPARAM)(LPVOID)_T("j") });
		m_vecBtnMsg.push_back({ _T("btnCopperplateChark"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_COPPERPLATE, (LPARAM)(LPVOID)_T("k") });
		m_vecBtnMsg.push_back({ _T("btnCopperplateCharl"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_COPPERPLATE, (LPARAM)(LPVOID)_T("l") });
		m_vecBtnMsg.push_back({ _T("btnCopperplateCharm"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_COPPERPLATE, (LPARAM)(LPVOID)_T("m") });
		m_vecBtnMsg.push_back({ _T("btnCopperplateCharn"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_COPPERPLATE, (LPARAM)(LPVOID)_T("n") });
		m_vecBtnMsg.push_back({ _T("btnCopperplateCharo"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_COPPERPLATE, (LPARAM)(LPVOID)_T("o") });
		m_vecBtnMsg.push_back({ _T("btnCopperplateCharp"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_COPPERPLATE, (LPARAM)(LPVOID)_T("p") });
		m_vecBtnMsg.push_back({ _T("btnCopperplateCharq"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_COPPERPLATE, (LPARAM)(LPVOID)_T("q") });
		m_vecBtnMsg.push_back({ _T("btnCopperplateCharr"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_COPPERPLATE, (LPARAM)(LPVOID)_T("r") });
		m_vecBtnMsg.push_back({ _T("btnCopperplateChars"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_COPPERPLATE, (LPARAM)(LPVOID)_T("s") });
		m_vecBtnMsg.push_back({ _T("btnCopperplateChart"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_COPPERPLATE, (LPARAM)(LPVOID)_T("t") });
		m_vecBtnMsg.push_back({ _T("btnCopperplateCharu"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_COPPERPLATE, (LPARAM)(LPVOID)_T("u") });
		m_vecBtnMsg.push_back({ _T("btnCopperplateCharv"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_COPPERPLATE, (LPARAM)(LPVOID)_T("v") });
		m_vecBtnMsg.push_back({ _T("btnCopperplateCharw"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_COPPERPLATE, (LPARAM)(LPVOID)_T("w") });
		m_vecBtnMsg.push_back({ _T("btnCopperplateCharx"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_COPPERPLATE, (LPARAM)(LPVOID)_T("x") });
		m_vecBtnMsg.push_back({ _T("btnCopperplateChary"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_COPPERPLATE, (LPARAM)(LPVOID)_T("y") });
		m_vecBtnMsg.push_back({ _T("btnCopperplateCharz"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_COPPERPLATE, (LPARAM)(LPVOID)_T("z") });
		m_vecBtnMsg.push_back({ _T("btnCopperplateCharA"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_COPPERPLATE, (LPARAM)(LPVOID)_T("A") });
		m_vecBtnMsg.push_back({ _T("btnCopperplateCharB"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_COPPERPLATE, (LPARAM)(LPVOID)_T("B") });
		m_vecBtnMsg.push_back({ _T("btnCopperplateCharC"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_COPPERPLATE, (LPARAM)(LPVOID)_T("C") });
		m_vecBtnMsg.push_back({ _T("btnCopperplateCharD"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_COPPERPLATE, (LPARAM)(LPVOID)_T("D") });
		m_vecBtnMsg.push_back({ _T("btnCopperplateCharE"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_COPPERPLATE, (LPARAM)(LPVOID)_T("E") });
		m_vecBtnMsg.push_back({ _T("btnCopperplateCharF"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_COPPERPLATE, (LPARAM)(LPVOID)_T("F") });
		m_vecBtnMsg.push_back({ _T("btnCopperplateCharG"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_COPPERPLATE, (LPARAM)(LPVOID)_T("G") });
		m_vecBtnMsg.push_back({ _T("btnCopperplateCharH"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_COPPERPLATE, (LPARAM)(LPVOID)_T("H") });
		m_vecBtnMsg.push_back({ _T("btnCopperplateCharI"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_COPPERPLATE, (LPARAM)(LPVOID)_T("I") });
		m_vecBtnMsg.push_back({ _T("btnCopperplateCharJ"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_COPPERPLATE, (LPARAM)(LPVOID)_T("J") });
		m_vecBtnMsg.push_back({ _T("btnCopperplateCharK"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_COPPERPLATE, (LPARAM)(LPVOID)_T("K") });
		m_vecBtnMsg.push_back({ _T("btnCopperplateCharL"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_COPPERPLATE, (LPARAM)(LPVOID)_T("L") });
		m_vecBtnMsg.push_back({ _T("btnCopperplateCharM"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_COPPERPLATE, (LPARAM)(LPVOID)_T("M") });
		m_vecBtnMsg.push_back({ _T("btnCopperplateCharN"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_COPPERPLATE, (LPARAM)(LPVOID)_T("N") });
		m_vecBtnMsg.push_back({ _T("btnCopperplateCharO"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_COPPERPLATE, (LPARAM)(LPVOID)_T("O") });
		m_vecBtnMsg.push_back({ _T("btnCopperplateCharP"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_COPPERPLATE, (LPARAM)(LPVOID)_T("P") });
		m_vecBtnMsg.push_back({ _T("btnCopperplateCharQ"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_COPPERPLATE, (LPARAM)(LPVOID)_T("Q") });
		m_vecBtnMsg.push_back({ _T("btnCopperplateCharR"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_COPPERPLATE, (LPARAM)(LPVOID)_T("R") });
		m_vecBtnMsg.push_back({ _T("btnCopperplateCharS"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_COPPERPLATE, (LPARAM)(LPVOID)_T("S") });
		m_vecBtnMsg.push_back({ _T("btnCopperplateCharT"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_COPPERPLATE, (LPARAM)(LPVOID)_T("T") });
		m_vecBtnMsg.push_back({ _T("btnCopperplateCharU"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_COPPERPLATE, (LPARAM)(LPVOID)_T("U") });
		m_vecBtnMsg.push_back({ _T("btnCopperplateCharV"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_COPPERPLATE, (LPARAM)(LPVOID)_T("V") });
		m_vecBtnMsg.push_back({ _T("btnCopperplateCharW"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_COPPERPLATE, (LPARAM)(LPVOID)_T("W") });
		m_vecBtnMsg.push_back({ _T("btnCopperplateCharX"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_COPPERPLATE, (LPARAM)(LPVOID)_T("X") });
		m_vecBtnMsg.push_back({ _T("btnCopperplateCharY"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_COPPERPLATE, (LPARAM)(LPVOID)_T("Y") });
		m_vecBtnMsg.push_back({ _T("btnCopperplateCharZ"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_COPPERPLATE, (LPARAM)(LPVOID)_T("Z") });
	}
	//极限
	else if (_tcsstr(m_strXMLPath, _T("MenuLimit.xml"))) {
		m_vecBtnMsg.push_back({ _T("btnlim"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_LIM, 0 });
		m_vecBtnMsg.push_back({ _T("btnmin"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_MIN, 0 });
		m_vecBtnMsg.push_back({ _T("btnmax"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_MAX, 0 });
		m_vecBtnMsg.push_back({ _T("btnlimit1"), WM_FORMULA_CREATEFORMULA, (WPARAM)(LPVOID)FORMULA_LIMIT1, 0 });
		m_vecBtnMsg.push_back({ _T("btnlimit"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_LIMIT, 0 });
		m_vecBtnMsg.push_back({ _T("btnminimum"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_MINIMUM, 0 });
		m_vecBtnMsg.push_back({ _T("btnmaximum"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_MAXIMUM, 0 });
		m_vecBtnMsg.push_back({ _T("btnlimit2"), WM_FORMULA_CREATEFORMULA, (WPARAM)(LPVOID)FORMULA_LIMIT2, 0 });
		m_vecBtnMsg.push_back({ _T("btnlimit3"), WM_FORMULA_CREATEFORMULA, (WPARAM)(LPVOID)FORMULA_LIMIT3, 0 });
		m_vecBtnMsg.push_back({ _T("btnlimit4"), WM_FORMULA_CREATEFORMULA, (WPARAM)(LPVOID)FORMULA_LIMIT4, 0 });
		m_vecBtnMsg.push_back({ _T("btnlimit5"), WM_FORMULA_CREATEFORMULA, (WPARAM)(LPVOID)FORMULA_LIMIT5, 0 });
	}
	//对数
	else if (_tcsstr(m_strXMLPath, _T("MenuLogarithm.xml"))) {
		m_vecBtnMsg.push_back({ _T("btnlog"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_LOG, 0 });
		m_vecBtnMsg.push_back({ _T("btnln"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_LN, 0 });
		m_vecBtnMsg.push_back({ _T("btnlg"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_LG, 0 });
		m_vecBtnMsg.push_back({ _T("btnlogarithm"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_LOGARITHM, 0 });
		m_vecBtnMsg.push_back({ _T("btnlogarithm1"), WM_FORMULA_CREATEFORMULA, (WPARAM)(LPVOID)FORMULA_LOGARITHM1, 0 });
		m_vecBtnMsg.push_back({ _T("btnlogarithm2"), WM_FORMULA_CREATEFORMULA, (WPARAM)(LPVOID)FORMULA_LOGARITHM2, 0 });
		m_vecBtnMsg.push_back({ _T("btnlogarithm3"), WM_FORMULA_CREATEFORMULA, (WPARAM)(LPVOID)FORMULA_LOGARITHM3, 0 });
		m_vecBtnMsg.push_back({ _T("btnlogarithm4"), WM_FORMULA_CREATEFORMULA, (WPARAM)(LPVOID)FORMULA_LOGARITHM4, 0 });
		m_vecBtnMsg.push_back({ _T("btnlogarithm5"), WM_FORMULA_CREATEFORMULA, (WPARAM)(LPVOID)FORMULA_LOGARITHM5, 0 });
		m_vecBtnMsg.push_back({ _T("btnlogarithm6"), WM_FORMULA_CREATEFORMULA, (WPARAM)(LPVOID)FORMULA_LOGARITHM6, 0 });
	}
	//特殊符号和大型运算符
	else if (_tcsstr(m_strXMLPath, _T("MenuSpecialSign.xml"))) {
		//m_vecBtnMsg.push_back({ _T("btnContained"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_SIGN, (LPARAM)(LPVOID)_T("⊃") });
		//m_vecBtnMsg.push_back({ _T("btnIncluded"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_SIGN, (LPARAM)(LPVOID)_T("⊇") });
		m_vecBtnMsg.push_back({ _T("btnnotin"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_NOTIN, 0 });
		//m_vecBtnMsg.push_back({ _T("btnNotContain"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_SIGN, (LPARAM)(LPVOID)_T("⊄") });
		m_vecBtnMsg.push_back({ _T("btnnsubseteq"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_NSUBSETEQ, 0 });
		m_vecBtnMsg.push_back({ _T("btnEmptySet"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_EMPTYSET, 0 });
		m_vecBtnMsg.push_back({ _T("btnLeftrightarrow"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_LEFTRIGHTARROW, 0 });
		m_vecBtnMsg.push_back({ _T("btnmapsto"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_MAPSTO, 0 });
		m_vecBtnMsg.push_back({ _T("btncap"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_INTERSECTION, 0 });
		m_vecBtnMsg.push_back({ _T("btncup"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_UNION, 0 });
		m_vecBtnMsg.push_back({ _T("btnsum"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_SUM, 0 });
		m_vecBtnMsg.push_back({ _T("btnprod"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_PRODUCT, 0 });
		m_vecBtnMsg.push_back({ _T("btnepsilon"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_epsilon, 0 });
		m_vecBtnMsg.push_back({ _T("btnphi"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_GREEKALPHABET, (LPARAM)(LPVOID)_T("f") });
		m_vecBtnMsg.push_back({ _T("btnvartheta"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_GREEKALPHABET, (LPARAM)(LPVOID)_T("J") });
		m_vecBtnMsg.push_back({ _T("btnaleph"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_ALEPH, 0 });
		m_vecBtnMsg.push_back({ _T("btnvarpi"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_GREEKALPHABET, (LPARAM)(LPVOID)_T("v") });
		m_vecBtnMsg.push_back({ _T("btnvarrho"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_varrho, 0 });
		m_vecBtnMsg.push_back({ _T("btnPsi"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_GREEKALPHABET, (LPARAM)(LPVOID)_T("Y") });
		m_vecBtnMsg.push_back({ _T("btnpsi"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_GREEKALPHABET, (LPARAM)(LPVOID)_T("y") });
		m_vecBtnMsg.push_back({ _T("btnboxminus"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_BOXMINUS, 0 });
		m_vecBtnMsg.push_back({ _T("btnboxtimes"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_BOXTIMES, 0 });
		m_vecBtnMsg.push_back({ _T("btnboxdot"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_BOXDOT, 0 });
		m_vecBtnMsg.push_back({ _T("btnboxplus"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_BOXPLUS, 0 });
		m_vecBtnMsg.push_back({ _T("btnominus"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_OMINUS, 0 });
		m_vecBtnMsg.push_back({ _T("btncircleddash"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_CIRCLEDDASH, 0 });
		m_vecBtnMsg.push_back({ _T("btnoplus"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_OPLUS, 0 });
		m_vecBtnMsg.push_back({ _T("btnotimes"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_OTIMES, 0 });
		m_vecBtnMsg.push_back({ _T("btnoslash"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_OSLASH, 0 });
		m_vecBtnMsg.push_back({ _T("btnodot"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_ODOT, 0 });
		m_vecBtnMsg.push_back({ _T("btncircledcirc"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_CIRCLEDCIRC, 0 });
		m_vecBtnMsg.push_back({ _T("btncircledast"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_CIRCLEDAST, 0 });
		m_vecBtnMsg.push_back({ _T("btnbigodot"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_BIGODOT, 0 });
		m_vecBtnMsg.push_back({ _T("btnbigotimes"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_BIGOTIMES, 0 });
		m_vecBtnMsg.push_back({ _T("btnbigoplus"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_BIGOPLUS, 0 });
	}
	//幂式
	else if (_tcsstr(m_strXMLPath, _T("MenuPower.xml"))) {
		m_vecBtnMsg.push_back({ _T("btnSuperscript"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_SUPERSCRIPT, 0 });
		m_vecBtnMsg.push_back({ _T("btnSubscript"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_SUBSCRIPT, 0 });
		m_vecBtnMsg.push_back({ _T("btnMidTopBottom"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_MIDTOPBOTTOM, 0 });
		m_vecBtnMsg.push_back({ _T("btnTopBottomMid"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_TOPBOTTOMMID, 0 });
		m_vecBtnMsg.push_back({ _T("btnPower1"), WM_FORMULA_CREATEFORMULA, (WPARAM)(LPVOID)FORMULA_POWER1, 0 });
		m_vecBtnMsg.push_back({ _T("btnPower2"), WM_FORMULA_CREATEFORMULA, (WPARAM)(LPVOID)FORMULA_POWER2, 0 });
		m_vecBtnMsg.push_back({ _T("btnPower3"), WM_FORMULA_CREATEFORMULA, (WPARAM)(LPVOID)FORMULA_POWER3, 0 });
		m_vecBtnMsg.push_back({ _T("btnPower4"), WM_FORMULA_CREATEFORMULA, (WPARAM)(LPVOID)FORMULA_POWER4, 0 });
		m_vecBtnMsg.push_back({ _T("btnPermutation"), WM_FORMULA_CREATEFORMULA, (WPARAM)(LPVOID)FORMULA_PERMUTATION, 0 });
		m_vecBtnMsg.push_back({ _T("btnCombination"), WM_FORMULA_CREATEFORMULA, (WPARAM)(LPVOID)FORMULA_COMBINATION, 0 });
		m_vecBtnMsg.push_back({ _T("btnPower5"), WM_FORMULA_CREATEFORMULA, (WPARAM)(LPVOID)FORMULA_POWER5, 0 });
		m_vecBtnMsg.push_back({ _T("btnPower6"), WM_FORMULA_CREATEFORMULA, (WPARAM)(LPVOID)FORMULA_POWER6, 0 });
		m_vecBtnMsg.push_back({ _T("btnPower7"), WM_FORMULA_CREATEFORMULA, (WPARAM)(LPVOID)FORMULA_POWER7, 0 });
		m_vecBtnMsg.push_back({ _T("btnPower8"), WM_FORMULA_CREATEFORMULA, (WPARAM)(LPVOID)FORMULA_POWER8, 0 });
	}
	//根式
	else if (_tcsstr(m_strXMLPath, _T("MenuRadical.xml"))) {
		m_vecBtnMsg.push_back({ _T("btnSquareRoot"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_RADICAL, 0 });
		m_vecBtnMsg.push_back({ _T("btnRadical"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_RADICAL, 1 });
		m_vecBtnMsg.push_back({ _T("btnRadical1"), WM_FORMULA_CREATEFORMULA, (WPARAM)(LPVOID)FORMULA_RADICAL1, 0 });
		m_vecBtnMsg.push_back({ _T("btnRadical2"), WM_FORMULA_CREATEFORMULA, (WPARAM)(LPVOID)FORMULA_RADICAL2, 0 });
		m_vecBtnMsg.push_back({ _T("btnRadical3"), WM_FORMULA_CREATEFORMULA, (WPARAM)(LPVOID)FORMULA_RADICAL3, 0 });
		m_vecBtnMsg.push_back({ _T("btnRadical4"), WM_FORMULA_CREATEFORMULA, (WPARAM)(LPVOID)FORMULA_RADICAL4, 0 });
	}
	//括号
	else if (_tcsstr(m_strXMLPath, _T("MenuBrackets.xml"))) {
		m_vecBtnMsg.push_back({ _T("btnParentheses"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_PARENTHESES, MAKELPARAM(1, 1) });
		m_vecBtnMsg.push_back({ _T("btnBrackets"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_BRACKETS, MAKELPARAM(1, 1) });
		m_vecBtnMsg.push_back({ _T("btnBraces"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_BRACES, MAKELPARAM(1, 1) });
		m_vecBtnMsg.push_back({ _T("btnAbsolute"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_ABSOLUTE, MAKELPARAM(1, 1) });
		m_vecBtnMsg.push_back({ _T("btnParenthesesL"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_PARENTHESES, MAKELPARAM(1, 0) });
		m_vecBtnMsg.push_back({ _T("btnParenthesesR"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_PARENTHESES, MAKELPARAM(0, 1) });
		m_vecBtnMsg.push_back({ _T("btnBracketsL"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_BRACKETS, MAKELPARAM(1, 0) });
		m_vecBtnMsg.push_back({ _T("btnBracketsR"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_BRACKETS, MAKELPARAM(0, 1) });
		m_vecBtnMsg.push_back({ _T("btnBracesL"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_BRACES, MAKELPARAM(1, 0) });
		m_vecBtnMsg.push_back({ _T("btnBracesR"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_BRACES, MAKELPARAM(0, 1) });
		m_vecBtnMsg.push_back({ _T("btnAbsoluteL"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_ABSOLUTE, MAKELPARAM(1, 0) });
		m_vecBtnMsg.push_back({ _T("btnAbsoluteR"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_ABSOLUTE, MAKELPARAM(0, 1) });
		//m_vecBtnMsg.push_back({ _T("btnSeparator"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_SEPARATOR, 0 });
		m_vecBtnMsg.push_back({ _T("btnSeparator1"), WM_FORMULA_CREATEFORMULA, (WPARAM)(LPVOID)FORMULA_BRACKETS1, 0 });
		m_vecBtnMsg.push_back({ _T("btnSeparator2"), WM_FORMULA_CREATEFORMULA, (WPARAM)(LPVOID)FORMULA_BRACKETS2, 0 });
	}
	//积分
	else if (_tcsstr(m_strXMLPath, _T("MenuIntegral.xml"))) {
		m_vecBtnMsg.push_back({ _T("btnIntegral1"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_INTEGRAL, 0 });
		m_vecBtnMsg.push_back({ _T("btnIntegral2"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_INTEGRALTBSCRIPT, 0 });
		m_vecBtnMsg.push_back({ _T("btnIntegral3"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_INTEGRALTBLIMIT, 0 });
		m_vecBtnMsg.push_back({ _T("btnDoubleIntegral1"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_DOUBLEINTEGRAL, 0 });
		m_vecBtnMsg.push_back({ _T("btnDoubleIntegral2"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_DOUBLEINTEGRALTBSCRIPT, 0 });
		m_vecBtnMsg.push_back({ _T("btnDoubleIntegral3"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_DOUBLEINTEGRALTBLIMIT, 0 });
		m_vecBtnMsg.push_back({ _T("btnTripleIntegral1"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_TRIPLEINTEGRAL, 0 });
		m_vecBtnMsg.push_back({ _T("btnTripleIntegral2"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_TRIPLEINTEGRALTBSCRIPT, 0 });
		m_vecBtnMsg.push_back({ _T("btnTripleIntegral3"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_TRIPLEINTEGRALTBLIMIT, 0 });
		m_vecBtnMsg.push_back({ _T("btnLoopIntegral1"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_LOOPINTEGRAL, 0 });
		m_vecBtnMsg.push_back({ _T("btnLoopIntegral2"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_LOOPINTEGRALTBSCRIPT, 0 });
		m_vecBtnMsg.push_back({ _T("btnLoopIntegral3"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_LOOPINTEGRALTBLIMIT, 0 });
		m_vecBtnMsg.push_back({ _T("btnDoubleLoopIntegral1"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_DOUBLELOOPINTEGRAL, 0 });
		m_vecBtnMsg.push_back({ _T("btnDoubleLoopIntegral2"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_DOUBLELOOPINTEGRALTBSCRIPT, 0 });
		m_vecBtnMsg.push_back({ _T("btnDoubleLoopIntegral3"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_DOUBLELOOPINTEGRALTBLIMIT, 0 });
		m_vecBtnMsg.push_back({ _T("btnTripleLoopIntegral1"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_TRIPLELOOPINTEGRAL, 0 });
		m_vecBtnMsg.push_back({ _T("btnTripleLoopIntegral2"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_TRIPLELOOPINTEGRALTBSCRIPT, 0 });
		m_vecBtnMsg.push_back({ _T("btnTripleLoopIntegral3"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_TRIPLELOOPINTEGRALTBLIMIT, 0 });
		m_vecBtnMsg.push_back({ _T("btnIntegralF1"), WM_FORMULA_CREATEFORMULA, (WPARAM)(LPVOID)FORMULA_INTEGRAL1, 0 });
		m_vecBtnMsg.push_back({ _T("btnIntegralF2"), WM_FORMULA_CREATEFORMULA, (WPARAM)(LPVOID)FORMULA_INTEGRAL2, 0 });
		m_vecBtnMsg.push_back({ _T("btnIntegralF3"), WM_FORMULA_CREATEFORMULA, (WPARAM)(LPVOID)FORMULA_INTEGRAL3, 0 });
		m_vecBtnMsg.push_back({ _T("btnIntegralF4"), WM_FORMULA_CREATEFORMULA, (WPARAM)(LPVOID)FORMULA_INTEGRAL4, 0 });
	}
	//求和
	else if (_tcsstr(m_strXMLPath, _T("MenuSum.xml"))) {
		m_vecBtnMsg.push_back({ _T("btnSum1"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_SUM, 0 });
		m_vecBtnMsg.push_back({ _T("btnSum2"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_SUMTBLIMIT, 0 });
		m_vecBtnMsg.push_back({ _T("btnSum3"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_SUMTBSCRIPT, 0 });
		m_vecBtnMsg.push_back({ _T("btnSum4"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_SUMBLIMIT, 0 });
		m_vecBtnMsg.push_back({ _T("btnSum5"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_SUMBSCRIPT, 0 });
		m_vecBtnMsg.push_back({ _T("btnSupremum1"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_SUPREMUM, 0 });
		m_vecBtnMsg.push_back({ _T("btnSupremum2"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_SUPREMUMTBLIMIT, 0 });
		m_vecBtnMsg.push_back({ _T("btnSupremum3"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_SUPREMUMTBSCRIPT, 0 });
		m_vecBtnMsg.push_back({ _T("btnSupremum4"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_SUPREMUMBLIMIT, 0 });
		m_vecBtnMsg.push_back({ _T("btnSupremum5"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_SUPREMUMBSCRIPT, 0 });
		m_vecBtnMsg.push_back({ _T("btnInfimum1"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_INFIMUM, 0 });
		m_vecBtnMsg.push_back({ _T("btnInfimum2"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_INFIMUMTBLIMIT, 0 });
		m_vecBtnMsg.push_back({ _T("btnInfimum3"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_INFIMUMTBSCRIPT, 0 });
		m_vecBtnMsg.push_back({ _T("btnInfimum4"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_INFIMUMBLIMIT, 0 });
		m_vecBtnMsg.push_back({ _T("btnInfimum5"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_INFIMUMBSCRIPT, 0 });
		m_vecBtnMsg.push_back({ _T("btnSumF1"), WM_FORMULA_CREATEFORMULA, (WPARAM)(LPVOID)FORMULA_SUM1, 0 });
		m_vecBtnMsg.push_back({ _T("btnSumF2"), WM_FORMULA_CREATEFORMULA, (WPARAM)(LPVOID)FORMULA_SUM2, 0 });
		m_vecBtnMsg.push_back({ _T("btnSumF3"), WM_FORMULA_CREATEFORMULA, (WPARAM)(LPVOID)FORMULA_SUM3, 0 });
		//m_vecBtnMsg.push_back({ _T("btnSumF4"), WM_FORMULA_CREATEFORMULA, (WPARAM)(LPVOID)FORMULA_SUM4, 0 });
	}
	//分式
	else if (_tcsstr(m_strXMLPath, _T("MenuFraction.xml"))) {
		m_vecBtnMsg.push_back({ _T("btnFraction"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_FRACTION, 0 });
		m_vecBtnMsg.push_back({ _T("btnFraction1"), WM_FORMULA_CREATEFORMULA, (WPARAM)(LPVOID)FORMULA_FRACTION1, 0 });
		m_vecBtnMsg.push_back({ _T("btnFraction2"), WM_FORMULA_CREATEFORMULA, (WPARAM)(LPVOID)FORMULA_FRACTION2, 0 });
		m_vecBtnMsg.push_back({ _T("btnFraction3"), WM_FORMULA_CREATEFORMULA, (WPARAM)(LPVOID)FORMULA_FRACTION3, 0 });
		m_vecBtnMsg.push_back({ _T("btnFraction4"), WM_FORMULA_CREATEFORMULA, (WPARAM)(LPVOID)FORMULA_FRACTION4, 0 });
		m_vecBtnMsg.push_back({ _T("btnFraction5"), WM_FORMULA_CREATEFORMULA, (WPARAM)(LPVOID)FORMULA_FRACTION5, 0 });
	}
	//矩阵
	else if (_tcsstr(m_strXMLPath, _T("MenuMatrix.xml"))) {
		m_vecBtnMsg.push_back({ _T("btnMatrix12"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_MATRIX, MAKELPARAM(1, 2) });
		m_vecBtnMsg.push_back({ _T("btnMatrix21"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_MATRIX, MAKELPARAM(2, 1) });
		m_vecBtnMsg.push_back({ _T("btnMatrix13"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_MATRIX, MAKELPARAM(1, 3) });
		m_vecBtnMsg.push_back({ _T("btnMatrix31"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_MATRIX, MAKELPARAM(3, 1) });
		m_vecBtnMsg.push_back({ _T("btnMatrix22"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_MATRIX, MAKELPARAM(2, 2) });
		m_vecBtnMsg.push_back({ _T("btnMatrix23"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_MATRIX, MAKELPARAM(2, 3) });
		m_vecBtnMsg.push_back({ _T("btnMatrix32"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_MATRIX, MAKELPARAM(3, 2) });
		m_vecBtnMsg.push_back({ _T("btnMatrix33"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_MATRIX, MAKELPARAM(3, 3) });
		m_vecBtnMsg.push_back({ _T("btnMatrix1"), WM_FORMULA_CREATEFORMULA, (WPARAM)(LPVOID)FORMULA_MATRIX1, 0 });
		m_vecBtnMsg.push_back({ _T("btnMatrix2"), WM_FORMULA_CREATEFORMULA, (WPARAM)(LPVOID)FORMULA_MATRIX2, 0 });
		m_vecBtnMsg.push_back({ _T("btnMatrixParentheses"), WM_FORMULA_CREATEFORMULA, (WPARAM)(LPVOID)FORMULA_MATRIXPARENTHESES, 0 });
		m_vecBtnMsg.push_back({ _T("btnMatrixBrackets"), WM_FORMULA_CREATEFORMULA, (WPARAM)(LPVOID)FORMULA_MATRIXBRACKETS, 0 });
		m_vecBtnMsg.push_back({ _T("btnMatrixAbsolute"), WM_FORMULA_CREATEFORMULA, (WPARAM)(LPVOID)FORMULA_MATRIXABSOLUTE, 0 });
		m_vecBtnMsg.push_back({ _T("btnMatrixMN"), WM_FORMULA_MATRIXMN, 0, 0 });
	}
	//箭头模块
	else if (_tcsstr(m_strXMLPath, _T("MenuArrow.xml"))) {
		m_vecBtnMsg.push_back({ _T("btnRightSingleArrowT"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_RIGHTSINGLEARROW, MAKELPARAM(1, 0) });
		m_vecBtnMsg.push_back({ _T("btnRightSingleArrowB"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_RIGHTSINGLEARROW, MAKELPARAM(0, 1) });
		m_vecBtnMsg.push_back({ _T("btnRightSingleArrow"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_RIGHTSINGLEARROW, MAKELPARAM(1, 1) });
		m_vecBtnMsg.push_back({ _T("btnLeftSingleArrowT"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_LEFTSINGLEARROW, MAKELPARAM(1, 0) });
		m_vecBtnMsg.push_back({ _T("btnLeftSingleArrowB"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_LEFTSINGLEARROW, MAKELPARAM(0, 1) });
		m_vecBtnMsg.push_back({ _T("btnLeftSingleArrow"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_LEFTSINGLEARROW, MAKELPARAM(1, 1) });
		m_vecBtnMsg.push_back({ _T("btnTwoWaySingleArrowT"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_TWOWAYSINGLEARROW, MAKELPARAM(1, 0) });
		m_vecBtnMsg.push_back({ _T("btnTwoWaySingleArrowB"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_TWOWAYSINGLEARROW, MAKELPARAM(0, 1) });
		m_vecBtnMsg.push_back({ _T("btnTwoWaySingleArrow"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_TWOWAYSINGLEARROW, MAKELPARAM(1, 1) });
		m_vecBtnMsg.push_back({ _T("btnRightHalfArrowT"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_RIGHTHALFARROW, MAKELPARAM(1, 0) });
		m_vecBtnMsg.push_back({ _T("btnRightHalfArrowB"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_RIGHTHALFARROW, MAKELPARAM(0, 1) });
		m_vecBtnMsg.push_back({ _T("btnRightHalfArrow"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_RIGHTHALFARROW, MAKELPARAM(1, 1) });
		m_vecBtnMsg.push_back({ _T("btnLeftHalfArrowT"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_LEFTHALFARROW, MAKELPARAM(1, 0) });
		m_vecBtnMsg.push_back({ _T("btnLeftHalfArrowB"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_LEFTHALFARROW, MAKELPARAM(0, 1) });
		m_vecBtnMsg.push_back({ _T("btnLeftHalfArrow"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_LEFTHALFARROW, MAKELPARAM(1, 1) });
		//m_vecBtnMsg.push_back({ _T("btnTwoWayHalfArrowT"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_TWOWAYHALFARROW, MAKELPARAM(1, 0) });
		//m_vecBtnMsg.push_back({ _T("btnTwoWayHalfArrowB"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_TWOWAYHALFARROW, MAKELPARAM(0, 1) });
		m_vecBtnMsg.push_back({ _T("btnTwoWayHalfArrow"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_TWOWAYHALFARROW, MAKELPARAM(1, 1) });
		m_vecBtnMsg.push_back({ _T("btnLeftDoubleArrowT"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_LEFTDOUBLEARROW, MAKELPARAM(1, 0) });
		m_vecBtnMsg.push_back({ _T("btnLeftDoubleArrowB"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_LEFTDOUBLEARROW, MAKELPARAM(0, 1) });
		//m_vecBtnMsg.push_back({ _T("btnLeftDoubleArrow"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_LEFTDOUBLEARROW, MAKELPARAM(1, 1) });
		m_vecBtnMsg.push_back({ _T("btnRightDoubleArrowT"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_RIGHTDOUBLEARROW, MAKELPARAM(1, 0) });
		m_vecBtnMsg.push_back({ _T("btnRightDoubleArrowB"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_RIGHTDOUBLEARROW, MAKELPARAM(0, 1) });
		//m_vecBtnMsg.push_back({ _T("btnRightDoubleArrow"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_RIGHTDOUBLEARROW, MAKELPARAM(1, 1) });
		m_vecBtnMsg.push_back({ _T("btnTwoWayDoubleArrowT"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_TWOWAYDOUBLEARROW, MAKELPARAM(1, 0) });
		m_vecBtnMsg.push_back({ _T("btnTwoWayDoubleArrowB"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_TWOWAYDOUBLEARROW, MAKELPARAM(0, 1) });
		//m_vecBtnMsg.push_back({ _T("btnTwoWayDoubleArrow"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_TWOWAYDOUBLEARROW, MAKELPARAM(1, 1) });
		m_vecBtnMsg.push_back({ _T("btnRightSingleArrow1"), WM_FORMULA_CREATEFORMULA, (WPARAM)(LPVOID)FORMULA_RIGHTSINGLEARROW1, 0 });
		m_vecBtnMsg.push_back({ _T("btnRightSingleArrow2"), WM_FORMULA_CREATEFORMULA, (WPARAM)(LPVOID)FORMULA_RIGHTSINGLEARROW2, 0 });
	}
	//标注符号
	else if (_tcsstr(m_strXMLPath, _T("MenuTaggedSign.xml"))) {
		m_vecBtnMsg.push_back({ _T("btnTopRightSingleArrow"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_TOPRIGHTSINGLEARROW, 0 });
		m_vecBtnMsg.push_back({ _T("btnTopLeftSingleArrow"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_TOPLEFTSINGLEARROW, 0 });
		m_vecBtnMsg.push_back({ _T("btnTopRightHalfArrow"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_TOPRIGHTHALFARROW, 0 });
		m_vecBtnMsg.push_back({ _T("btnTopLeftHalfArrow"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_TOPLEFTHALFARROW, 0 });
		m_vecBtnMsg.push_back({ _T("btnTopTwoWaySingleArrow"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_TOPTWOWAYSINGLEARROW, 0 });
		m_vecBtnMsg.push_back({ _T("btnTopOnePoint"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_TOPONEPOINT, 0 });
		m_vecBtnMsg.push_back({ _T("btnTopTwoPoint"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_TOPTWOPOINT, 0 });
		m_vecBtnMsg.push_back({ _T("btnTopThreePoint"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_TOPTHREEPOINT, 0 });
		m_vecBtnMsg.push_back({ _T("btnTopOneLine"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_TOPONELINE, 0 });
		m_vecBtnMsg.push_back({ _T("btnTopTwoLine"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_TOPTWOLINE, 0 });
		m_vecBtnMsg.push_back({ _T("btnTopAcuteAccent"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_TOPACUTEACCENT, 0 });
		m_vecBtnMsg.push_back({ _T("btnTopGraveAccent"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_TOPGRAVEACCENT, 0 });
		m_vecBtnMsg.push_back({ _T("btnTopCircumflexAccent"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_TOPCIRCUMFLEXACCENT, 0 });
		m_vecBtnMsg.push_back({ _T("btnTopModulateAccent"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_TOPMODULATEACCENT, 0 });
		m_vecBtnMsg.push_back({ _T("btnTopTilde"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_TOPTILDE, 0 });
		m_vecBtnMsg.push_back({ _T("btnTopBreveAccent"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_TOPBREVEACCENT, 0 });
		m_vecBtnMsg.push_back({ _T("btnTopOneLine1"), WM_FORMULA_CREATEFORMULA, (WPARAM)(LPVOID)FORMULA_TOPONELINE1, 0 });
		m_vecBtnMsg.push_back({ _T("btnTopOneLine2"), WM_FORMULA_CREATEFORMULA, (WPARAM)(LPVOID)FORMULA_TOPONELINE2, 0 });
	}
	//乘积副积和交集并集
	else if (_tcsstr(m_strXMLPath, _T("MenuLargeOperator.xml"))) {
		m_vecBtnMsg.push_back({ _T("btnProduct1"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_PRODUCT, 0 });
		m_vecBtnMsg.push_back({ _T("btnProduct2"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_PRODUCTTBLIMIT, 0 });
		m_vecBtnMsg.push_back({ _T("btnProduct3"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_PRODUCTTBSCRIPT, 0 });
		m_vecBtnMsg.push_back({ _T("btnProduct4"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_PRODUCTBLIMIT, 0 });
		m_vecBtnMsg.push_back({ _T("btnProduct5"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_PRODUCTBSCRIPT, 0 });
		m_vecBtnMsg.push_back({ _T("btnAccessoryProduct1"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_ACCESSORYPRODUCT, 0 });
		m_vecBtnMsg.push_back({ _T("btnAccessoryProduct2"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_ACCESSORYPRODUCTTBLIMIT, 0 });
		m_vecBtnMsg.push_back({ _T("btnAccessoryProduct3"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_ACCESSORYPRODUCTTBSCRIPT, 0 });
		m_vecBtnMsg.push_back({ _T("btnAccessoryProduct4"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_ACCESSORYPRODUCTBLIMIT, 0 });
		m_vecBtnMsg.push_back({ _T("btnAccessoryProduct5"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_ACCESSORYPRODUCTBSCRIPT, 0 });
		m_vecBtnMsg.push_back({ _T("btnUnion1"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_UNION, 0 });
		m_vecBtnMsg.push_back({ _T("btnUnion2"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_UNIONTBLIMIT, 0 });
		m_vecBtnMsg.push_back({ _T("btnUnion3"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_UNIONTBSCRIPT, 0 });
		m_vecBtnMsg.push_back({ _T("btnUnion4"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_UNIONBLIMIT, 0 });
		m_vecBtnMsg.push_back({ _T("btnUnion5"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_UNIONBSCRIPT, 0 });
		m_vecBtnMsg.push_back({ _T("btnIntersection1"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_INTERSECTION, 0 });
		m_vecBtnMsg.push_back({ _T("btnIntersection2"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_INTERSECTIONTBLIMIT, 0 });
		m_vecBtnMsg.push_back({ _T("btnIntersection3"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_INTERSECTIONTBSCRIPT, 0 });
		m_vecBtnMsg.push_back({ _T("btnIntersection4"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_INTERSECTIONBLIMIT, 0 });
		m_vecBtnMsg.push_back({ _T("btnIntersection5"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_INTERSECTIONBSCRIPT, 0 });
		m_vecBtnMsg.push_back({ _T("btnProductF1"), WM_FORMULA_CREATEFORMULA, (WPARAM)(LPVOID)FORMULA_PRODUCT1, 0 });
		m_vecBtnMsg.push_back({ _T("btnUnionF1"), WM_FORMULA_CREATEFORMULA, (WPARAM)(LPVOID)FORMULA_UNION1, 0 });
	}
	//三角函数
	else if (_tcsstr(m_strXMLPath, _T("MenuTrigonometric.xml"))) {
		m_vecBtnMsg.push_back({ _T("btnsin"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_SIN, 0 });
		m_vecBtnMsg.push_back({ _T("btncos"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_COS, 0 });
		m_vecBtnMsg.push_back({ _T("btntan"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_TAN, 0 });
		m_vecBtnMsg.push_back({ _T("btncsc"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_CSC, 0 });
		m_vecBtnMsg.push_back({ _T("btnsec"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_SEC, 0 });
		m_vecBtnMsg.push_back({ _T("btncot"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_COT, 0 });
		m_vecBtnMsg.push_back({ _T("btnsintheta"), WM_FORMULA_CREATEFORMULA, (WPARAM)(LPVOID)FORMULA_SINXTHETA, 0 });
		m_vecBtnMsg.push_back({ _T("btnsinx"), WM_FORMULA_CREATEFORMULA, (WPARAM)(LPVOID)FORMULA_SINX, 0 });
		m_vecBtnMsg.push_back({ _T("btncosx"), WM_FORMULA_CREATEFORMULA, (WPARAM)(LPVOID)FORMULA_COSX, 0 });
		m_vecBtnMsg.push_back({ _T("btntanx"), WM_FORMULA_CREATEFORMULA, (WPARAM)(LPVOID)FORMULA_TANX, 0 });
	}
	//反三角函数
	else if (_tcsstr(m_strXMLPath, _T("MenuInverseTrigonometric.xml"))) {
		m_vecBtnMsg.push_back({ _T("btnarcsin"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_ARCSIN, 0 });
		m_vecBtnMsg.push_back({ _T("btnarccos"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_ARCCOS, 0 });
		m_vecBtnMsg.push_back({ _T("btnarctan"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_ARCTAN, 0 });
		m_vecBtnMsg.push_back({ _T("btnarcsinx"), WM_FORMULA_CREATEFORMULA, (WPARAM)(LPVOID)FORMULA_ARCSINX, 0 });
		m_vecBtnMsg.push_back({ _T("btnarccosx"), WM_FORMULA_CREATEFORMULA, (WPARAM)(LPVOID)FORMULA_ARCCOSX, 0 });
		m_vecBtnMsg.push_back({ _T("btnarctanx"), WM_FORMULA_CREATEFORMULA, (WPARAM)(LPVOID)FORMULA_ARCTANX, 0 });
		m_vecBtnMsg.push_back({ _T("btnarccosinelow"), WM_FORMULA_CREATEFORMULA, (WPARAM)(LPVOID)FORMULA_ARCCOSINELAW, 0 });
	}
	//双曲函数
	else if (_tcsstr(m_strXMLPath, _T("MenuHyperbolicFunction.xml"))) {
		m_vecBtnMsg.push_back({ _T("btnInversesin"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_INVERSE, (LPARAM)(LPVOID)NT_SIN });
		m_vecBtnMsg.push_back({ _T("btnInversecos"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_INVERSE, (LPARAM)(LPVOID)NT_COS });
		m_vecBtnMsg.push_back({ _T("btnInversetan"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_INVERSE, (LPARAM)(LPVOID)NT_TAN });
		m_vecBtnMsg.push_back({ _T("btnInversecsc"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_INVERSE, (LPARAM)(LPVOID)NT_CSC });
		m_vecBtnMsg.push_back({ _T("btnInversesec"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_INVERSE, (LPARAM)(LPVOID)NT_SEC });
		m_vecBtnMsg.push_back({ _T("btnInversecot"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_INVERSE, (LPARAM)(LPVOID)NT_COT });
		m_vecBtnMsg.push_back({ _T("btnsinh"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_SINH, 0 });
		m_vecBtnMsg.push_back({ _T("btncosh"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_COSH, 0 });
		m_vecBtnMsg.push_back({ _T("btntanh"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_TANH, 0 });
		m_vecBtnMsg.push_back({ _T("btncoth"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_COTH, 0 });
		m_vecBtnMsg.push_back({ _T("btnInversesinh"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_INVERSE, (LPARAM)(LPVOID)NT_SINH });
		m_vecBtnMsg.push_back({ _T("btnInversecosh"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_INVERSE, (LPARAM)(LPVOID)NT_COSH });
		m_vecBtnMsg.push_back({ _T("btnInversetanh"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_INVERSE, (LPARAM)(LPVOID)NT_TANH });
		m_vecBtnMsg.push_back({ _T("btnInversecoth"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_INVERSE, (LPARAM)(LPVOID)NT_COTH });
		m_vecBtnMsg.push_back({ _T("btnsinhx"), WM_FORMULA_CREATEFORMULA, (WPARAM)(LPVOID)FORMULA_SINHX, 0 });
		m_vecBtnMsg.push_back({ _T("btncoshx"), WM_FORMULA_CREATEFORMULA, (WPARAM)(LPVOID)FORMULA_COSHX, 0 });
	}
	//关键字
	else if (_tcsstr(m_strXMLPath, _T("MenuKeyword.xml"))) {
		m_vecBtnMsg.push_back({ _T("btnarg"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_ARG, 0 });
		m_vecBtnMsg.push_back({ _T("btndeg"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_DEG, 0 });
		m_vecBtnMsg.push_back({ _T("btndet"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_DET, 0 });
		m_vecBtnMsg.push_back({ _T("btndim"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_DIM, 0 });
		m_vecBtnMsg.push_back({ _T("btnexp"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_EXP, 0 });
		m_vecBtnMsg.push_back({ _T("btngcd"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_GCD, 0 });
		m_vecBtnMsg.push_back({ _T("btnhom"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_HOM, 0 });
		m_vecBtnMsg.push_back({ _T("btnker"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_KER, 0 });
		m_vecBtnMsg.push_back({ _T("btnpr"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_PR, 0 });
		m_vecBtnMsg.push_back({ _T("btnliminf"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_LIMINF, 0 });
		m_vecBtnMsg.push_back({ _T("btnlimsup"), WM_FORMULA_CREATENODE, (WPARAM)(LPVOID)NT_LIMSUP, 0 });
	}
}
